﻿#pragma once
#include "TrTypes.h"


class TRMANAGERSHARED_EXPORT CTrManager
{
public:
    CTrManager();
    // 交易账户登录 单独登录账号 适配穿透式监管API
    void TrUserLogin(const char* BrokerID, const char* UserID, const char* Password, const char* Front, const char* AppID, const char* AuthCode);
    // 交易账户登出 单独登出账号
    void TrUserLogout();
    // 添加接收器
    void TrAddReceiver(CTrReceiver* receiver);
    // 删除接收器
    void TrDelReceiver(CTrReceiver* receiver);
    // 查询持仓
    void TrRspPosition();
    // 查询资金
    void TrRspTradingAccount();
    // 查询交易合约
    void TrRspInsrument();
    // 开多仓
    void TrBuy(TrRtnOrderField order);
    // 开空仓
    void TrSell(TrRtnOrderField order);
    // 平多仓
    void TrShort(TrRtnOrderField order);
    // 平空仓
    void TrCover(TrRtnOrderField order);
    // 撤单
    void TrRevoke(CThostFtdcOrderField order);
    // 获取原始合约信息
    CThostFtdcInstrumentField TrInstrument(const char* Instrument);
    // 账号状态
    bool TrbReady();
    // 释放所有
    void TrRelease();
    // 版本信息
    static const char* TrVersion();
    // 设置行情前置机地址
    void TrSetFront(const char* Front);
    // 新增合约订阅
    void TrAddSubscribe(const char* Instrument);
    // 抓取历史K线
    void TrQuote(const char* Instrument, int iStyle = 0);
    // 开始订阅行情
    void TrStart();
    // 停止订阅行情
    void TrStop();
    // 行情连接状态
    bool TrMarketStatus();
    // 交易连接状态
    bool TrTradeStatus();
    // 获取本地合约信息
    Contract TrContract(const char* code);
    // 获取本地交易品种信息
    Commodity TrCommodity(const char* code);
};